
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

using namespace std;

const int max_grille = 6;
int grille[max_grille][max_grille];
int level=1;
int zero,one,two,three,four,five;
int tab[600]; // pour piocher random


void feed_test(){

int p = 0;
        for(int i=0;i<36;i++){

            for(int j=0;j<35;j++){

                    grille[i][j]= p++;
            }
        }


}


void affiche_grille(){


    cout<<" Temoin : grille X = [2] et Y = [3] = "<<grille[2][3]<<endl;
     cout<<""<<endl;

    for ( int i = 0; i< max_grille; i++) {
        cout << " ";
                    for(int j=0; j<max_grille; j++){
                            cout << grille[j][i] ;
                            cout << " | ";
                    }
                    cout << " " << endl;
        }
        cout<<"--------------------------------------------------------"<<endl;
}

int get_number(int x,int y){

    int n = grille[x][y];

    return n;
}

void set_number(int x,int y, int n ){

     grille[x][y]=n;

}

void play(){

    int x,y,tmp=0;

    while(x!= 10){


    cout<<"Nombre X"<<endl;
    cin>>x;

    cout<<"Nombre Y"<<endl;
    cin>>y;

    tmp = grille[x][y];

    cout<<"laa "<<tmp<<endl;
    cout<<"x "<<x<<endl;
    cout<<"y "<<y<<endl;
    tmp++;
    grille[x][y]= tmp;
    tmp=0;
     affiche_grille();


    }
}



void set_level(int l){

level=l;
}


int make_random (int min, int max){

	int u = rand() % max + min;
    return u;

}

void feed_grille(int level){ // niveau de jeu en para

    set_level(level);

    switch (level){

        case 1 : {zero=20;one=50;two=130;three=100;four=300;}
        break;

        case 2 : {zero=50;one=150;two=100;three=200;four=100;}
        break;

        case 3 : {zero=100;one=100;two=200;three=150;four=50;}
        break;

        case 4 : {zero=200;one=200;two=100;three=50;four=50;}
        break;

        case 5 : {zero=300;one=180;two=100;three=20;four=0;}
        break;
    }

    for(int i=0;i<600;i++){ // remplis le tableau avec les differentes valeures que pourrai prendre une bulle

        if(zero > 0){
         tab[i]=0;
         zero--;
        }
         else if(one > 0){
         tab[i]=1;
         one--;
        }
         else if(two > 0){
         tab[i]=2;
         two--;
        }
         else if(three > 0){
         tab[i]=3;
         three--;
        }
         else if(four > 0){
         tab[i]=4;
         four--;
        }

    }

    for ( int i = 0; i< max_grille; i++) {
                int k;
                for(int
                    j=0; j<max_grille; j++){

                        k=make_random(0,600); // valeur random
                        grille[i][j] = tab[k];


                }
    }

}

int main() {
    srand ( time(NULL) );


    feed_grille(5); // avec le niveau desire
    //feed_test();
    affiche_grille(); // affiche la matrice de jeu

    play();

    affiche_grille(); // affiche la matrice de jeu


    return 0;
}
